package bg.btanev.eightyfour.service;

import java.util.Date;
import java.util.List;

import bg.btanev.eightyfour.domain.Target;
import bg.btanev.eightyfour.domain.profile.Profile;
import bg.btanev.eightyfour.domain.profile.ProfileEvent;
import bg.btanev.eightyfour.domain.profile.feed.FeedProfile;
import bg.btanev.eightyfour.shared.state.ProfileType;

/**
 *
 * @author B.Tanev
 *
 */
public interface ProfileService {
	FeedProfile createAndStoreFeedProfile(String name, ProfileType type, Target target, String feedUrl);

	Profile<ProfileEvent> updateFeedProfile(Long identifier, String name, String feedUrl);

	List<Profile<ProfileEvent>> findAllProfiles(Target target);

	List<ProfileEvent> findProfileEventsForTarget(Target target);

	void deleteProfile(Long identifier);

	List<ProfileEvent> findProfileEvents(Target target, Date beginDate, Date endDate, ProfileType profileType, String searchQuery,
			List<String> tags);
}
